const path = require('path');
const fs = require('fs');

// 创建正则表达式
// \s匹配空白字符 \S匹配非空白字符 *匹配任意次
const regStyle = /<style>[\s\S]*<\/style>/;
const regScript = /<script>[\s\S]*<\/script>/;

fs.readFile(path.join(__dirname,"../素材/index.html"),'utf-8',function(err,dataStr){
    // 文件读取失败的回调
    if(err) return console.log('读取文件失败' + err.message);
    // 文件读取成功的回调
    // 处理css文件
    resolveCss(dataStr);
    // 处理js文件
    resolveScript(dataStr);
    // 处理html文件
    resolveHtml(dataStr)
})
// 处理css的方法
function resolveCss(htmlStr){
    // 使用正则提取需要的内容
    const r1 = regStyle.exec(htmlStr);
    // 将提取的内容进行replace替换操作
    const newCss = r1[0].replace('<style>','').replace('</style>','');

    fs.writeFile(path.join(__dirname,'./clock/index.css'),newCss,function(err){
        if(err) return console.log("写入css样式失败" + err.message)
        console.log('写入样式成功')
    }) 
}  
// 处理script的方法
function resolveScript(htmlStr){
    // 使用正则提取需要的内容
    const r1 = regScript.exec(htmlStr);
    // 将提取的内容进行replace替换操作
    const newScript = r1[0].replace('<script>','').replace('</script>','');
    fs.writeFile(path.join(__dirname,'./clock/index.js'),newScript,function(err){
        if(err) return console.log("写入script样式失败" + err.message)
        console.log('写入js成功')
    }) 
}  

// 处理html的方法
function resolveHtml(htmlStr){
    // 将字符串调用replace方法，把内嵌的style金额script替换link ，script
    const newHtml = htmlStr.replace(regStyle,'<link rel="stylesheet" href="./index.css">').replace(regScript,'<script src="./index.js"></script>');
    // 写入文件
    fs.writeFile(path.join(__dirname,'./clock/index.html'),newHtml,function(err){
        if(err) return console.log("写入html失败" + err.message)
        console.log('写入html成功')
    }) 
}  
